import 'package:flutter/material.dart';

import '../../common/index.dart';
import '../models/index.dart';
import '../vm/index.dart';
import '../widgets/eg_detail_widget.dart';

class EgDetailV extends StatefulWidget {
  const EgDetailV({super.key});
  @override
  State<StatefulWidget> createState() {
    return EgDetailVState();
  }
}

class EgDetailVState extends BaseStateV<EgDetailV> {
  // --------- 公开属性  --------- //

  @override
  bool get isNeedScaffol => false;
  // --------- 私有属性  --------- //

  DetailVm vm = DetailVm();
  TuChongItem? item;
  int relaIndex = 0;
  // --------- 生命周期  --------- //

  @override
  void didChangeDependencies() {
    super.didChangeDependencies();
    // 在这里获取路由参数，这是安全的
    if (item == null) {
      // 使用NavigatorTool.getArguments方法获取参数
      item = NavigatorUtil.getArguments<TuChongItem>();

      // 如果上面的方法不可用，使用备用方式获取参数
      if (item == null) {
        final arguments = ModalRoute.of(context)?.settings.arguments;
        if (arguments != null && arguments is TuChongItem) {
          item = arguments;
          debugPrint('通过备用方式获取到路由参数');
        } else {
          debugPrint('路由参数获取失败: ${arguments?.runtimeType}');
        }
      } else {
        debugPrint('通过NavigatorTool.getArguments获取到路由参数');
      }

      if (item != null) {
        getNetWorkData();
      } else {
        debugPrint('警告: 未能获取到路由参数，详情页可能无法正常显示');
      }
    }
  }

  // --------- 构建UI  --------- //
  @override
  Widget createBody({
    required BuildContext context,
    BoxConstraints? constraints,
  }) {
    return EgDetailWidget(imageList: vm.imageList);
  }

  // --------- 数据处理  --------- //
  @override
  getNetWorkData({int? type, Map<String, dynamic>? info}) async {
    vm.configDetailImageModelList(
        tuChongItem: item!, width: SystemScreen.getScreenWidth(context));
    configSetState(() {});
  }
  // --------- 触发事件  --------- //
}
